﻿Public Class Ddevolucion

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32) As List(Of Edevolucion)
        Dim devoluciones As List(Of Edevolucion) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucion_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            devoluciones = New List(Of Edevolucion)
                            Dim devolucion As Edevolucion = Nothing
                            Do While dr.Read
                                devolucion = New Edevolucion( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idDevolucion")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idMotDevInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descmotDevInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("tpoGestion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetDecimal(dr.GetOrdinal("montPenalidad")), _
                                    dr.GetString(dr.GetOrdinal("fchDevolucion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")))
                                devoluciones.Add(devolucion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return devoluciones
    End Function
    Public Shared Function SeleccionarFiltro(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32, ByVal devolucion As Edevolucion) As List(Of Edevolucion)
        Dim devoluciones As List(Of Edevolucion) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucion_selXfiltro", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = devolucion.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = devolucion.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = devolucion.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            devoluciones = New List(Of Edevolucion)
                            Dim devolucion2 As Edevolucion = Nothing
                            Do While dr.Read
                                devolucion2 = New Edevolucion( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idDevolucion")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idMotDevInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descmotDevInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("tpoGestion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetDecimal(dr.GetOrdinal("montPenalidad")), _
                                    dr.GetString(dr.GetOrdinal("fchDevolucion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")))
                                devoluciones.Add(devolucion2)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return devoluciones
    End Function

    'Public Shared Function SeleccionarXEstado() As List(Of Edevolucion)
    '    Dim devoluciones As List(Of Edevolucion) = Nothing

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_vendedor_selXEstado", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            Try
    '                cn.Open()
    '                Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
    '                    If dr.HasRows Then
    '                        devoluciones = New List(Of Edevolucion)
    '                        Dim devolucion As Edevolucion = Nothing 'tipo 
    '                        Do While dr.Read
    '                            devolucion = New Edevolucion( _
    '                                dr.GetInt32(dr.GetOrdinal("idVendedor")), _
    '                                dr.GetString(dr.GetOrdinal("nombre")), _
    '                                dr.GetString(dr.GetOrdinal("apePaterno")), _
    '                                dr.GetString(dr.GetOrdinal("apeMaterno")), _
    '                                dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
    '                                dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
    '                                dr.GetString(dr.GetOrdinal("nroDcmto")), _
    '                                dr.GetString(dr.GetOrdinal("telefono")), _
    '                                dr.GetString(dr.GetOrdinal("movil")), _
    '                                dr.GetString(dr.GetOrdinal("email")), _
    '                                dr.GetString(dr.GetOrdinal("estado")))
    '                            devoluciones.Add(devolucion)
    '                        Loop
    '                        dr.Close()
    '                    End If
    '                End Using
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return devoluciones
    'End Function
    'Public Shared Function Añadir(ByVal pVendedor As Edevolucion) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_vendedor_add", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pVendedor.nombre
    '            cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pVendedor.apePaterno
    '            cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pVendedor.apeMaterno
    '            cmd.Parameters.Add("@telefono", SqlDbType.VarChar, 11).Value = pVendedor.telefono
    '            cmd.Parameters.Add("@movil", SqlDbType.VarChar, 9).Value = pVendedor.movil
    '            cmd.Parameters.Add("@email", SqlDbType.VarChar, 40).Value = pVendedor.email
    '            cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pVendedor.EtpoDocmto.idTpoDcmto
    '            cmd.Parameters.Add("@nroDcmto", SqlDbType.VarChar, 55).Value = pVendedor.nroDcmto
    '            cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pVendedor.idUsuario
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal devolucion As Edevolucion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucion_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = devolucion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = devolucion.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = devolucion.idSeparacionVenta
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = devolucion.idEdiMzn
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = devolucion.idUndInmon
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = devolucion.idModelo
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = devolucion.nroDocumento
                cmd.Parameters.Add("@fchSeparacionVenta", SqlDbType.Char, 10).Value = devolucion.fchSeparacionVenta
                cmd.Parameters.Add("@idMotDevInmueble", SqlDbType.Int).Value = devolucion.EmotDevInmueble.idMotDevInmueble
                cmd.Parameters.Add("@fchDevolucion", SqlDbType.Char, 10).Value = devolucion.fchDevolucion
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = devolucion.tpoGestion
                cmd.Parameters.Add("@montPenalidad", SqlDbType.Decimal, 15, 2).Value = devolucion.montPenalidad
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = devolucion.idProforma
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = devolucion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirTemp(ByVal descEmpresa As String, ByVal devolucion As Edevolucion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucionTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = devolucion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = devolucion.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = devolucion.idSeparacionVenta
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = devolucion.idEdiMzn
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = devolucion.idUndInmon
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = devolucion.idModelo
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = devolucion.nroDocumento
                cmd.Parameters.Add("@fchSeparacionVenta", SqlDbType.Char, 10).Value = devolucion.fchSeparacionVenta
                cmd.Parameters.Add("@idMotDevInmueble", SqlDbType.Int).Value = devolucion.EmotDevInmueble.idMotDevInmueble
                cmd.Parameters.Add("@fchDevolucion", SqlDbType.Char, 10).Value = devolucion.fchDevolucion
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = devolucion.tpoGestion
                cmd.Parameters.Add("@montPenalidad", SqlDbType.Decimal, 15, 2).Value = devolucion.montPenalidad
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = devolucion.idProforma
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = devolucion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pDevolucion As Edevolucion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucion_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pDevolucion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.VarChar, 55).Value = pDevolucion.idEtapa
                cmd.Parameters.Add("@idDevolucion", SqlDbType.VarChar, 55).Value = pDevolucion.idDevolucion
                cmd.Parameters.Add("@idMotDevInmueble", SqlDbType.VarChar, 55).Value = pDevolucion.EmotDevInmueble.idMotDevInmueble
                cmd.Parameters.Add("@montPenalidad", SqlDbType.VarChar, 11).Value = pDevolucion.montPenalidad
                cmd.Parameters.Add("@fchDevolucion", SqlDbType.VarChar, 9).Value = pDevolucion.fchDevolucion
                cmd.Parameters.Add("@idUsuario", SqlDbType.VarChar, 40).Value = pDevolucion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    'Public Shared Function Eliminar(ByVal pVendedor As Edevolucion) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_vendedor_del", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor.idVendedor
    '            cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pVendedor.idUsuario
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function

    Public Shared Function SeleccionarTodoTemporal(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idEtapa As Int32) As List(Of Edevolucion)
        Dim devoluciones As List(Of Edevolucion) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucionTemp_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = idEtapa
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            devoluciones = New List(Of Edevolucion)
                            Dim devolucion As Edevolucion = Nothing
                            Do While dr.Read
                                devolucion = New Edevolucion( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idDevolucion")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idMotDevInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descmotDevInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("tpoGestion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetDecimal(dr.GetOrdinal("montPenalidad")), _
                                    dr.GetString(dr.GetOrdinal("fchDevolucion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")))
                                devoluciones.Add(devolucion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return devoluciones
    End Function
    Public Shared Function AñadirTemporal(ByVal descEmpresa As String, ByVal devolucion As Edevolucion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucionTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = devolucion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = devolucion.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = devolucion.idSeparacionVenta
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = devolucion.idEdiMzn
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = devolucion.idUndInmon
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = devolucion.idModelo
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = devolucion.nroDocumento
                cmd.Parameters.Add("@fchSeparacionVenta", SqlDbType.Char, 10).Value = devolucion.fchSeparacionVenta
                cmd.Parameters.Add("@idMotDevInmueble", SqlDbType.Int).Value = devolucion.EmotDevInmueble.idMotDevInmueble
                cmd.Parameters.Add("@fchDevolucion", SqlDbType.Char, 10).Value = devolucion.fchDevolucion
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = devolucion.tpoGestion
                cmd.Parameters.Add("@montPenalidad", SqlDbType.Decimal, 15, 2).Value = devolucion.montPenalidad
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = devolucion.idProforma
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = devolucion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarTemporal(ByVal descEmpresa As String, ByVal pDevolucion As Edevolucion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_devolucionTemp_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pDevolucion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.VarChar, 55).Value = pDevolucion.idEtapa
                cmd.Parameters.Add("@idDevolucion", SqlDbType.VarChar, 55).Value = pDevolucion.idDevolucion
                cmd.Parameters.Add("@idMotDevInmueble", SqlDbType.VarChar, 55).Value = pDevolucion.EmotDevInmueble.idMotDevInmueble
                cmd.Parameters.Add("@montPenalidad", SqlDbType.VarChar, 11).Value = pDevolucion.montPenalidad
                cmd.Parameters.Add("@fchDevolucion", SqlDbType.VarChar, 9).Value = pDevolucion.fchDevolucion
                cmd.Parameters.Add("@idUsuario", SqlDbType.VarChar, 40).Value = pDevolucion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
